package com.atguigu.j_trycatch;
/*
    1. try中有异常,catch捕获到 :
        a. 从上至下执行try中代码,遇到异常代码立刻终止try中代码执行 //不要瞎包
        b. 进入catch中执行异常的解决方案
        c. 继续执行try..catch后方代码

    2. try中有异常,catch没捕获到 :
        a. 从上至下执行try中代码,遇到异常代码立刻终止try中代码执行
        b. 因为没有捕获到异常,所以JVM介入处理异常
        c. 按照JVM处理异常的方式处理异常

    3. try中无异常
        a. 从上至下执行try中代码
        b. 因为try中没有异常,直接执行try..catch后方代码,不执行catch中的语句


    4. try中有异常,catch捕获到,catch中有异常 :
        a. 从上至下执行try中代码,遇到异常代码立刻终止try中代码执行
        b. 进入catch中执行异常的解决方案
        c. 遇到了catch中的异常,因为没有处理所以JVM介入处理异常
        d. 按照JVM处理异常的方式处理异常
 */
public class Demo2 {
    public static void main(String[] args) {
        System.out.println("main开始");
        try{
            System.out.println("try开始");
            System.out.println(7 / 0);
            System.out.println("try结束");
        } catch (ArithmeticException e){
            System.out.println("catch开始");
            System.out.println("数学异常产生了 ! ");
            System.out.println("catch结束");

        } catch (Exception e){
            System.out.println("catch开始");
            System.out.println("异常产生了 ! ");
            System.out.println("catch结束");

        }
        System.out.println("main结束");
    }
}
